<?php
namespace app\admin\controller;


use think\Db;

/**
 * @title 参赛团队
 * @description 接口说明
 * @group 报名管理后台接口
 * @header name:authorization require:1 default: desc:登陆的token
 */
class Team extends Base
{
    protected $_order = 'id desc';

    /**
     * @title 获取
     * @description 接口说明
     * @author hardy
     * @url /admin/Team
     * @method GET
     *
     * @param name:id type:int require:0 default:1 other: desc:唯一ID，获取某条记录详情，则为必填，id和page选填其一
     * @param name:page type:int require:0 default:1 other: desc:页码数 获取第二页以上的数据必填，默认值为1，id和page选填其一
     * @param name:size type:int require:0 default:20 other: desc:每一页的数量，默认20
     * @param name:title type:int require:0 default: other: desc:团队标题（搜索用）
     * @param name:match_id type:int require:0 default: other: desc:赛事id（搜索）
     * @param name:type type:int require:0 default: other: desc:参赛性质：1个人，2团队（搜索用）
     * @param name:cate_id type:int require:0 default: other: desc:分类id（搜索）
     * @param name:share_id type:int require:0 default: other: desc:分销员的id
     *
     *
     * @return title:团队标题
     * @return type:{key：真实值, value:显示的值}参赛性质：1个人，2团队
     * @return cover:图片的值
     * @return desc:作品描述
     * @return match_id:{key：真实值, value:显示的值}赛事id
     * @return cate_id:{key：真实值, value:显示的值}分类id
     * @return member_count:参赛人数（已通过审核的人数）
     *
     * @return list:消息列表,有page参数则返回值list，list是一个数组，
     * @return size:每页最大数，默认20，可由前端传递参数决定 page参数返回值，
     * @return page:当前页，page参数返回值，
     * @return count:总记录数， page参数返回值，
     */
    public function gets()
    {
        parent::gets();

    }
    protected function _searchPage(&$where)
    {
        $data = input('get.');
        $keys = ['title', 'cate_id', 'match_id', 'type', 'share_id'];
        foreach ($keys as $v){
            if(!empty($data[$v])){
                $where[] = [$v,'like', "%{$data[$v]}%"];
            }
        }
    }
    /**
     * @title 创建
     * @description 接口说明
     * @author hardy
     * @url /admin/Team
     * @method POST
     *
     *
     * @param name:title type:string require:0 default: other: desc:团队标题
     * @param name:type type:int require:1 default:0 other: desc:参赛性质：1个人，2团队
     * @param name:match_id type:int require:1 default:0 other: desc:赛事id
     * @param name:cate_id type:int require:1 default:0 other: desc:分类id
     * @param name:cover type:int require:0 default:0 other: desc:封面
     * @param name:desc type:string require:0 default:0 other: desc:作品描述
     * @param name:share_id type:string require:0 default:0 other: desc:推销员的id
     *
     */
    public function create(){
        parent::create();
    }
    /**
     * @title 修改
     * @description 接口说明：修改接口除了id必填，其余的都为选填，上传需要修改的字段或状态
     * @author hardy
     * @url /admin/Team
     * @method put
     *
     *
     * @param name:id type:int require:1 default: other: desc:id
     * @param name:name type:string require:0 default: other: desc:比赛名称
     * @param name:desc type:int require:0 default:0 other: desc:排序，值越小越靠前
     *
     * @return name:分类名称
     * @return sort:排序
     */
    public function update(){
        parent::update();
    }
    /**
     * @title 删除
     * @description 接口说明
     * @author hardy
     * @url /admin/Team
     * @method delete
     *
     *
     * @param name:id type:int|string|array require:1 default: other: desc:单个删除：数字，多组删除：","隔开的数字或者数组
     *
     */
    public function delete(){
        $id = input('delete.id');
        $data = model('Member')->where('team_id', $id)->value('id');
        if (!empty($data)){
            $this->responseFail('该团队还有成员，不能删除');
        }
        parent::delete();
    }
}